package com.osdp.auth.server;

import com.osdp.uc.dto.UserDTO;

/**
 * 
 * @author liubo
 *
 */
public interface ILoginService {

    /**
     * 根据账号、密码 登录
     * @param username 账号
     * @param password 密码
     * @return
     */
    String login(String username,String password);

    /**
     * 根据账号、密码、租户 登录 并确定是否要验证
     * @param username 账号
     * @param password 密码
     * @param tenantCode 租户
     * @param verify 是否需要验证
     * @return
     */
    String loginWithTenant(String username,String password,String tenantCode,boolean verify);

    /**
     * 根据账号、密码、租户 登录
     * @param username 账号
     * @param password 密码
     * @param tenantCode 租户
     * @return
     */
    String loginWithTenant(String username,String password,String tenantCode);

    /**
     * 免密登录，提供rsa加密后的账号
     * @param encryptedAccount
     * @return
     */
    String unverifiedLogin(String encryptedAccount);

    /**
     * 免密码登录
     * @param account
     * @param encrypted 是否需要提供加密账号
     * @return
     */
    String unverifiedLogin(String account,boolean encrypted);

    /**
     * 登出
     * @param token
     * @return
     */
    boolean loginOut(String token);

    /**
     *
     * @param userName
     * @return
     */
    UserDTO queryUserByUserName(String userName);

}
